package algorithm.middle;

import java.util.HashMap;
import java.util.Map;

/**
 * TinyURL 是一种 URL 简化服务， 比如：当你输入一个 URL https://leetcode.com/problems/design-tinyurl 时，它将返回一个简化的URL http://tinyurl.com/4e9iAk 。请你设计一个类来加密与解密 TinyURL 。
 *
 * 加密和解密算法如何设计和运作是没有限制的，你只需要保证一个 URL 可以被加密成一个 TinyURL ，并且这个 TinyURL 可以用解密方法恢复成原本的 URL 。
 *
 * 来源：力扣（LeetCode）
 * 链接：https://leetcode.cn/problems/encode-and-decode-tinyurl
 * 著作权归领扣网络所有。商业转载请联系官方授权，非商业转载请注明出处。
 */
public class Codec535 {

    private Map<Integer,String> dataBase =  new HashMap<>();
    private  int id = 0;
    private String prefix = "https://tinurl/id=";

    // Encodes a URL to a shortened URL.
    public String encode(String longUrl) {
        id=id+1;
        dataBase.put(id, longUrl);
        return prefix+id;
    }

    // Decodes a shortened URL to its original URL.
    public String decode(String shortUrl) {
        String substring = shortUrl.substring(shortUrl.indexOf("=") + 1);
        return dataBase.get(Integer.parseInt(substring));
    }
}
